package com.example.wechat.login.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.wechat.login.dto.feedback.FeedbackRequest;
import com.example.wechat.login.dto.feedback.FeedbackResponse;
import com.example.wechat.login.entity.Feedback;

/**
 * 问题反馈服务接口
 */
public interface FeedbackService {

    /**
     * 创建问题反馈
     *
     * @param request 反馈请求DTO
     * @param unionId 用户unionId
     * @return 反馈响应DTO
     */
    FeedbackResponse createFeedback(FeedbackRequest request, String unionId);

    /**
     * 根据ID查询反馈
     *
     * @param id 反馈ID
     * @return 反馈响应DTO
     */
    FeedbackResponse getFeedbackById(Long id);

    /**
     * 根据用户unionId分页查询反馈列表
     *
     * @param unionId 用户unionId
     * @param current 当前页
     * @param size 每页大小
     * @return 分页结果
     */
    Page<FeedbackResponse> getFeedbackPageByUnionId(String unionId, long current, long size);

    /**
     * 根据反馈类型分页查询反馈列表
     *
     * @param feedbackType 反馈类型
     * @param current 当前页
     * @param size 每页大小
     * @return 分页结果
     */
    Page<FeedbackResponse> getFeedbackPageByFeedbackType(String feedbackType, long current, long size);

    /**
     * 根据状态分页查询反馈列表
     *
     * @param status 状态
     * @param current 当前页
     * @param size 每页大小
     * @return 分页结果
     */
    Page<FeedbackResponse> getFeedbackPageByStatus(Integer status, long current, long size);

    /**
     * 更新反馈状态
     *
     * @param id 反馈ID
     * @param status 状态
     * @param result 处理结果
     * @return 是否更新成功
     */
    boolean updateFeedbackStatus(Long id, Integer status, String result);
}
